import requests #使用request库对网页进行访问
from bs4 import BeautifulSoup as bs #BeautifulSoup能将HTML文件转为树状结构。
datas = [] #储存我们要爬取的数据
num = 1 #格式化url所用
headers = {'User-Agent':'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36"}User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36'}
#headers为访问头，模拟浏览器。
#我们使用一个循环，来进行数据爬取。当下一页，也就是next的按钮没有时，所有的数据就能被爬取，break终止这个循环。
while True :
    url="http://quotes.toscrape.com/page/{}/".format(str(num)) #访问所需的url
    request = requests.get(url,headers=headers) #使用get方法进行访问。
    soup = bs(request.text,"lxml") #生成Beautifulsoup对象。
    data = soup.select("body > div > div:nth-child(2) > div.col-md-8 > div > span.text") #选择我们定位的数据
    for item in data :
        datas.append(item.get_text())
    nexturl = soup.select(" body > div > div:nth-child(2) > div.col-md-8 > nav > ul > li.next ")#next按钮的数据，存储的是下一页的uRl
    print(nexturl)
    if nexturl == [] : #因为是以列表形式返回的，让列表为空时我们就停止循环。
        break
    else :
        num += 1
#将我们爬取的数据写入到TXT文件中。
with open("quotes.txt","w") as f :
    for item in datas :
        f.write(item)
        print()